﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace ProyectoFinal
{
    public partial class Form6 : Form
    {
        DataSet dsVentas;
        string rutaSQL = "Data Source=localhost;Initial Catalog=Isotopos;Integrated Security=True";
        bool cargoya = false;
        bool cargoya2 = false;

        public Form6(int hoy=0)        
        {
            InitializeComponent();
            dsVentas = new DataSet();
            load_ventas();
            cbDiaDesde.Text = DateTime.Today.Day.ToString();
            cbDiaHasta.Text = DateTime.Today.Day.ToString();
            cbMesDesde.Text = DateTime.Today.Month.ToString();
            cbMesHasta.Text = DateTime.Today.Month.ToString();
            cbAñoDesde.Text = DateTime.Today.Year.ToString();
            cbAñoHasta.Text = DateTime.Today.Year.ToString();

            //Ver Ventas de Hoy
            if(hoy==1)
                {
                    filtrar_por_Fecha();
                }
            
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void Form6_Load(object sender, EventArgs e)
        {
   
        }

        public void filtrar_por_Fecha()
        {
            try
            {
                string dv = "-";
                string fecha_Desde = cbDiaDesde.Text + dv + cbMesDesde.Text + dv + cbAñoDesde.Text;
                string fecha_Hasta = cbDiaHasta.Text + dv + cbMesHasta.Text + dv + cbAñoHasta.Text;
                fecha_Desde = "convert(datetime, '" + fecha_Desde + "', 103)";
                fecha_Hasta = "convert(datetime, '" + fecha_Hasta + "', 103)";
                string campo = "convert(datetime, FechaVenta, 103)";
                string strdate = " and " + campo + " >= " + fecha_Desde + " and " + campo + " <=" + fecha_Hasta + "";
                load_ventas(strdate);
            }
            catch (Exception)
            {
                return;
            }
        }

        private void btnEnero_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = "1";
            cbDiaHasta.Text = "31";
            cbMesDesde.Text = "1";
            cbMesHasta.Text = "1";
            filtrar_por_Fecha();
        }

        private void btnFebrero_Click(object sender, EventArgs e)
        {
            int año1 = Convert.ToInt32(cbAñoDesde.Text);
            int año2 = Convert.ToInt32(cbAñoHasta.Text);

            if ((año1 % 4 == 0 && año1 % 100 != 0 || año1 % 400 == 0) && (año2 % 4 == 0 && año2 % 100 != 0 || año2 % 400 == 0))
            {
                cbDiaDesde.Text = "1";
                cbDiaHasta.Text = "29";
                cbMesDesde.Text = "2";
                cbMesHasta.Text = "2";
                filtrar_por_Fecha();
            }
            else
            {
                cbDiaDesde.Text = "1";
                cbDiaHasta.Text = "28";
                cbMesDesde.Text = "2";
                cbMesHasta.Text = "2";
                filtrar_por_Fecha();
            }
        }

        private void btnMarzo_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = "1";
            cbDiaHasta.Text = "31";
            cbMesDesde.Text = "3";
            cbMesHasta.Text = "3";
            filtrar_por_Fecha();
        }

        private void btnAbril_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = "1";
            cbDiaHasta.Text = "30";
            cbMesDesde.Text = "4";
            cbMesHasta.Text = "4";
            filtrar_por_Fecha();
        }

        private void btnMayo_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = "1";
            cbDiaHasta.Text = "31";
            cbMesDesde.Text = "5";
            cbMesHasta.Text = "5";  
            filtrar_por_Fecha();
        }

        private void btnJunio_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = "1";
            cbDiaHasta.Text = "30";
            cbMesDesde.Text = "6";
            cbMesHasta.Text = "6";
            filtrar_por_Fecha();
        }

        private void btnJulio_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = "1";
            cbDiaHasta.Text = "31";
            cbMesDesde.Text = "7";
            cbMesHasta.Text = "7";
            filtrar_por_Fecha();
        }

        private void btnAgosto_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = "1";
            cbDiaHasta.Text = "31";
            cbMesDesde.Text = "8";
            cbMesHasta.Text = "8";
            filtrar_por_Fecha();
        }

        private void btnSeptiembre_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = "1";
            cbDiaHasta.Text = "30";
            cbMesDesde.Text = "9";
            cbMesHasta.Text = "9";
            filtrar_por_Fecha();
        }

        private void btnOctubre_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = "1";
            cbDiaHasta.Text = "31";
            cbMesDesde.Text = "10";
            cbMesHasta.Text = "10";
            filtrar_por_Fecha();
        }

        private void btnNoviembre_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = "1";
            cbDiaHasta.Text = "30";
            cbMesDesde.Text = "11";
            cbMesHasta.Text = "11";
            filtrar_por_Fecha();
        }

        private void btnDiciembre_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = "1";
            cbDiaHasta.Text = "31";
            cbMesDesde.Text = "12";
            cbMesHasta.Text = "12";
            filtrar_por_Fecha();
        }


        public void load_total(string cond = "")
        {
            lbl_text_total.Text = "0 $";
            string QuerySQL = "Select (Sum(Total)) as Total1 from Ventas  where estado=0" + cond;//ultimaventa +1
            SqlConnection con = new SqlConnection(rutaSQL);
            SqlCommand cmd = new SqlCommand(QuerySQL);
            DataTable tabla = new DataTable();
            SqlDataAdapter AdaptadorTabla = new SqlDataAdapter(QuerySQL, con);
            AdaptadorTabla.Fill(tabla);// Llenamos la tabla con los datos leídos        
           lbl_text_total.Text  = float.Parse(tabla.Rows[0]["Total1"].ToString())+ " $";
           if (lbl_text_total.Text == " $")
           {
               lbl_text_total.Text = tabla.Rows[0]["Total1"].ToString() + "0 $";
           }      
           // SqlCommand cmd = new SqlCommand("select IdVenta,FechaVenta,NombreMesa,(Nombre + ' ' + Apellidos) as [Nombre Empleado],Total from Ventas inner join Mesas on IdMesa=Mesa inner join Empleados on IdEmpleadoVendedor=IdEmpleado where estado=0" + cond, con);
       
           // da.Fill(dsVentas, "Ventas2");
            //datagrid_ventas.DataSource = dsVentas.Tables["Ventas2"];
            cargoya2 = true;
        }


        public void load_ventas(string cond ="")
        {
           if(cargoya) dsVentas.Tables["Ventas"].Clear();
            SqlConnection con = new SqlConnection(rutaSQL);
            SqlCommand cmd = new SqlCommand("select IdVenta,FechaVenta,NombreMesa,(Nombre + ' ' + Apellidos) as [Nombre Empleado],Total from Ventas inner join Mesas on IdMesa=Mesa inner join Empleados on IdEmpleadoVendedor=IdEmpleado where estado=0" + cond, con);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dsVentas, "Ventas");
            datagrid_ventas.DataSource = dsVentas.Tables["Ventas"];
            cargoya = true;

            load_total(cond);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            load_ventas();//sin condiciones, solo  q estado  = 0.
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            filtrar_por_Fecha();
        }

        private void datagrid_ventas_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            string mn = datagrid_ventas.SelectedRows[0].Index.ToString();
            string z = datagrid_ventas.Rows[Int16.Parse(mn)].Cells[0].Value.ToString();

            if (MessageBox.Show("¿Seguro que desea volver a abrir este ticket?", "Confirmar Cambios.", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                try
                {
                    string QuerySQL = "Update Ventas Set Estado=1 where IdVenta=" + z;
                    SqlConnection con = new SqlConnection(rutaSQL);
                    SqlCommand cmdInsert = con.CreateCommand();
                    cmdInsert.CommandText = QuerySQL;
                    con.Open();
                    cmdInsert.ExecuteNonQuery();
                    con.Close();
                    MessageBox.Show("Habilitado");

                }
                catch (Exception B)
                {
                    MessageBox.Show("Error al intentar habilitar la venta : "+z);
                     MessageBox.Show(B.Message.ToString());
                }
            }
        }

        private void datagrid_ventas_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            cbDiaDesde.Text = DateTime.Today.Day.ToString();
            cbDiaHasta.Text = DateTime.Today.Day.ToString();
            cbMesDesde.Text = DateTime.Today.Month.ToString();
            cbMesHasta.Text = DateTime.Today.Month.ToString();
            cbAñoDesde.Text = DateTime.Today.Year.ToString();
            cbAñoHasta.Text = DateTime.Today.Year.ToString();
            filtrar_por_Fecha();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
